home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Dev / Oberon / source / OC / OCOut.mod < prev    next >
Text File  |  1995-07-02  |  4KB  |  152 lines

  1. (*************************************************************************
  2.  
  3.      $RCSfile: OCOut.mod $
  4.   Description: Machine-specific declarations and operations.
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 5.1 $
  8.       $Author: fjc $
  9.         $Date: 1995/05/19 15:57:52 $
  10.  
  11.   Copyright © 1995, Frank Copeland
  12.   This module forms part of the OC program
  13.   See OC.doc for conditions of use and distribution
  14.  
  15.   Log entries are at the end of the file.
  16.  
  17. *************************************************************************)
  18.  
  19. <* STANDARD- *> <* MAIN- *>
  20.  
  21. MODULE OCOut;
  22.  
  23. IMPORT
  24.   SYS := SYSTEM, Kernel, e := Exec, d := Dos, du := DosUtil,
  25.   WbConsole, s := OCStrings;
  26.  
  27. (*
  28. ** Console I/O
  29. *)
  30.  
  31. (*------------------------------------*)
  32. PROCEDURE Str* ( string : ARRAY OF CHAR );
  33. <*$CopyArrays-*>
  34. BEGIN (* Str *)
  35.   du.HaltIfBreak ({d.ctrlC});
  36.   IF d.PutStr (string) = 0 THEN END;
  37.   IF d.Flush (d.Output()) THEN END
  38. END Str;
  39.  
  40.  
  41. (*------------------------------------*)
  42. PROCEDURE Ln*;
  43. BEGIN (* Ln *)
  44.   du.HaltIfBreak ({d.ctrlC});
  45.   IF d.PutStr ("\n") = 0 THEN END;
  46. END Ln;
  47.  
  48.  
  49. (*------------------------------------*)
  50. PROCEDURE Char* ( c : CHAR );
  51. BEGIN (* Char *)
  52.   du.HaltIfBreak ({d.ctrlC});
  53.   d.PrintF ("%lc", c);
  54.   IF d.Flush (d.Output()) THEN END
  55. END Char;
  56.  
  57.  
  58. (*------------------------------------*)
  59. PROCEDURE Int* ( i : LONGINT );
  60. BEGIN (* Int *)
  61.   du.HaltIfBreak ({d.ctrlC});
  62.   d.PrintF ("%ld", i);
  63.   IF d.Flush (d.Output()) THEN END
  64. END Int;
  65.  
  66.  
  67. (*------------------------------------*)
  68. PROCEDURE Str0* ( n : LONGINT );
  69.   VAR string : e.LSTRPTR;
  70. BEGIN (* Str0 *)
  71.   du.HaltIfBreak ({d.ctrlC});
  72.   string := s.GetString (n);
  73.   IF d.PutStr (string^) = 0 THEN END;
  74.   IF d.Flush (d.Output()) THEN END
  75. END Str0;
  76.  
  77.  
  78. (*------------------------------------*)
  79. PROCEDURE Str1* ( n : LONGINT; string : ARRAY OF CHAR );
  80.   VAR format : e.LSTRPTR;
  81. <*$CopyArrays-*>
  82. BEGIN (* Str1 *)
  83.   du.HaltIfBreak ({d.ctrlC});
  84.   format := s.GetString (n);
  85.   d.PrintF (format^, SYS.ADR (string));
  86.   IF d.Flush (d.Output()) THEN END
  87. END Str1;
  88.  
  89.  
  90. (*------------------------------------*)
  91. PROCEDURE Int3* ( n, i1, i2, i3 : LONGINT );
  92.   VAR format : e.LSTRPTR;
  93. BEGIN (* Int3 *)
  94.   du.HaltIfBreak ({d.ctrlC});
  95.   format := s.GetString (n);
  96.   d.PrintF (format^, i1, i2, i3);
  97.   IF d.Flush (d.Output()) THEN END
  98. END Int3;
  99.  
  100.  
  101. (*------------------------------------*)
  102. PROCEDURE Int4* ( n, i1, i2, i3, i4 : LONGINT );
  103.   VAR format : e.LSTRPTR;
  104. BEGIN (* Int4 *)
  105.   du.HaltIfBreak ({d.ctrlC});
  106.   format := s.GetString (n);
  107.   d.PrintF (format^, i1, i2, i3, i4);
  108.   IF d.Flush (d.Output()) THEN END
  109. END Int4;
  110.  
  111.  
  112. (*------------------------------------*)
  113. PROCEDURE* PutCh ();
  114.  
  115. <*$EntryExitCode-*>
  116. BEGIN (* PutCh *)
  117.   SYS.INLINE (16C0H,   (* MOVE.B D0,(A3)+ *)
  118.               4E75H)   (* RTS             *)
  119. END PutCh;
  120.  
  121.  
  122. (*------------------------------------*)
  123. PROCEDURE FmtInt3* ( n, i1, i2, i3 : LONGINT; VAR string : ARRAY OF CHAR );
  124.   VAR format : e.LSTRPTR; t : LONGINT;
  125. BEGIN (* FmtInt3 *)
  126.   format := s.GetString (n);
  127.   t := i1; i1 := i3; i3 := t;
  128.   e.OldRawDoFmtL (format^, i3, PutCh, SYS.ADR (string));
  129. END FmtInt3;
  130.  
  131.  
  132. (*------------------------------------*)
  133. PROCEDURE* Cleanup (VAR rc : LONGINT);
  134.  
  135. BEGIN (* Cleanup *)
  136.   s.CloseCatalog()
  137. END Cleanup;
  138.  
  139. BEGIN
  140.   Kernel.SetCleanup (Cleanup);
  141.   s.OpenCatalog (NIL, "");
  142. END OCOut.
  143.  
  144. (***************************************************************************
  145.  
  146.   $Log: OCOut.mod $
  147. # Revision 5.1  1995/05/19  15:57:52  fjc
  148. # - Initial revision
  149. # - Moved console IO code out of OCM.
  150. #
  151. ***************************************************************************)
  152.